From 3e81653bd320b9d5c760c2731a225f546f353c7a Mon Sep 17 00:00:00 2001 From: Lars Uebernickel Date: Tue, 3 Feb 2015 11:01:29 +0100 Subject: [PATCH] Add support for loading gtk3-only modules Introduce GTK3_MODULES environment variable for modules that don't work in gtk3. The list of modules is now $GTK3_MODULES:$GTK_MODULES. https://bugzilla.gnome.org/show_bug.cgi?id=743917 --- docs/reference/gtk/running.sgml | 14 ++++++++++++-- gtk/gtkmain.c | 13 ++++++++++++- 2 files changed, 24 insertions(+), 3 deletions(-) diff --git a/docs/reference/gtk/running.sgml b/docs/reference/gtk/running.sgml index 1c406a346a..a826dca828 100644 --- a/docs/reference/gtk/running.sgml +++ b/docs/reference/gtk/running.sgml @@ -36,7 +36,7 @@ some additional commandline options. A list of modules to load in addition to those specified in the -GTK_MODULES environment variable and the +GTK3_MODULES environment variable and the gtk-modules setting. @@ -223,14 +223,24 @@ additional environment variables. - <envar>GTK_MODULES</envar> + <envar>GTK3_MODULES</envar> A list of modules to load. Note that GTK+ also allows to specify modules to load via a commandline option () and with the gtk-modules setting. + + + + <envar>GTK_MODULES</envar> + + + A list of modules to load in addition to the ones in the GTK3_MODULES variable. + Note that this environment variable is read by GTK+ 2.x too, which may not have the same set of modules available for loading. + Use GTK3_MODULES for modules that are only compatible + with GTK+ 3. diff --git a/gtk/gtkmain.c b/gtk/gtkmain.c index 88e326051b..36c2586c78 100644 --- a/gtk/gtkmain.c +++ b/gtk/gtkmain.c @@ -657,9 +657,20 @@ do_pre_parse_initialization (int *argc, } #endif /* G_ENABLE_DEBUG */ - env_string = g_getenv ("GTK_MODULES"); + env_string = g_getenv ("GTK3_MODULES"); if (env_string) gtk_modules_string = g_string_new (env_string); + + env_string = g_getenv ("GTK_MODULES"); + if (env_string) + { + if (gtk_modules_string) + g_string_append_c (gtk_modules_string, G_SEARCHPATH_SEPARATOR); + else + gtk_modules_string = g_string_new (NULL); + + g_string_append (gtk_modules_string, env_string); + } } static void -- 2.30.2